Array.prototype.reduce = function (fn, initValue) {
  let result = initValue ? initValue : this[0];
  for (let i = initValue ? 0 : 1; i < this.length; i++) {
    if (!this.hasOwnProperty(i)) continue; // 处理稀疏数组的情况
    result = fn(result, this[i], i,this);
  }
  return result;
};

// 使用
const arr = [1, 2, 3, , 5];
const reduceRes = arr.reduce((sum, item) => sum + item);
console.log(reduceRes);